package smartlifev30.com.sdk.api.gateway_app;

import android.support.annotation.NonNull;
import android.support.annotation.Nullable;

import java.util.List;

import smartlifev30.com.sdk.api.CallBack;
import smartlifev30.com.sdk.bean.request.Room;
import smartlifev30.com.sdk.bean.response.LoginResponse;
import smartlifev30.com.sdk.bean.response.RoomQueryResponse;

/**
 * Created by tys on 2018/8/13.
 */

public interface IRoomMgmtGateway {

    /**
     * 查询房间列表
     *
     * @param userName
     * @param token
     * @param sn
     * @param callBack
     */
    void roomQuery(@NonNull String userName, @NonNull String token, @NonNull String sn,
                   @NonNull CallBack<RoomQueryResponse> callBack);

    /**
     * 添加一个房间,网关端会返回新建房间的room id
     *
     * @param userName
     * @param token
     * @param sn
     * @param room
     * @param callBack
     */
    void roomAdd(@NonNull String userName, @NonNull String token, @NonNull String sn,
                 @NonNull Room room, @NonNull CallBack<LoginResponse> callBack);


    /**
     * 删除一个/多个房间
     *
     * @param userName
     * @param token
     * @param sn
     * @param roomIds     房间ID 长度为0时表示删除所有房间
     * @param callBack
     */
    void delRoom(@NonNull String userName, @NonNull String token, @NonNull String sn,
                 @Nullable List<Integer> roomIds, @NonNull CallBack<LoginResponse> callBack);

    /**
     *   编辑房间信息
     * @param userName
     * @param token
     * @param sn
     * @param room
     * @param callBack
     */
    void editRoom(@NonNull String userName, @NonNull String token, @NonNull String sn,
                  @Nullable Room room, @NonNull CallBack<LoginResponse> callBack);

}
